package com.bysj.sausys.service;

import com.bysj.sausys.beans.PageQuery;
import com.bysj.sausys.beans.PageResult;
import com.bysj.sausys.beans.SubmitTaskBean;
import com.bysj.sausys.model.SysAssAnn;

import java.util.Map;

/**
 * 社团年审申请Service接口
 *
 * @author WangZK
 */
public interface ISysAssAnnService {

    /**
     * 保存社团年审申请单
     *
     * @param sysAssAnn
     * @param map
     */
    void save(SysAssAnn sysAssAnn, Map map);

    /**
     * 更新社团年审申请单
     *
     * @param sysAssAnn
     * @param map
     */
    void update(SysAssAnn sysAssAnn, Map map);

    /**
     * 根据id获取社团年审申请单
     *
     * @param id
     * @return
     */
    SysAssAnn findById(Integer id);

    /**
     * 分页获取社团年审申请单列表
     *
     * @param pageQuery
     * @param map
     * @return
     */
    PageResult<SysAssAnn> getPage(PageQuery pageQuery, Map map);

    /**
     * 删除社团年审申请单
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 启动社团年审审批流程
     *
     * @param id
     * @param currentUsername
     */
    void saveStartProcess(Integer id, String currentUsername);

    /**
     * 获取审批信息
     *
     * @param taskId
     * @return
     */
    Map getAuditInfo(String taskId);

    /**
     * 获取历史的审批信息
     *
     * @param id
     * @return
     */
    Map getHisComment(Integer id);

    /**
     * 提交任务
     *
     * @param submitTaskBean
     * @param username
     */
    void saveSubmitTask(SubmitTaskBean submitTaskBean, String username);

    /**
     * 修改社团年审申请单的状态
     *
     * @param map
     */
    void updateStatus(Map map);

    /**
     * 审批不通过
     *
     * @param map
     * @param sysAssAnn
     */
    void auditNotPass(Map map, SysAssAnn sysAssAnn);
}
